// http://read.pudn.com/downloads105/sourcecode/embed/430205/ds2401.c__.htm

char calc_crc(char crc, char byte)   
{   
    char i;   
   
    for(i = 0; i < 8; i++) {   
        if((byte ^ crc) & 1)   
            crc ^= 0x0118;              /* x^8 + x^5 + x^4 + 1 */   // XOR en bits   
        crc >>= 1;   //Desplazamiento hacia la derecha en bits
        byte >>= 1;   //Desplazamiento hacia la derecha en bits
        }   
       
  return crc;  
}   